1. Field of the Invention
This invention generally relates to sustaining connections within communications networks. More specifically, the invention relates to maintaining a communications protocol session in a client/server architecture during periods of non-activity at the client.
2. Description of the Related Art
In a distributed communications network, a user of a computer desiring to use the network (the “client” computer) will ultimately be connected during a session via a communications protocol to another computer (the “server” computer) in order for the client to utilize resources that may be available at the server. In typical communications network deployments, additional computers may serve as agents of the client as part of the communications path. For example, computer network 100 shown in FIG. 1 can contain agents such as proxies 110 and 160, and firewalls 120 and 150. In network 100, data travelling between client 130 and server 140 can first travel through proxy 110 and firewall 120, before reaching data communications network 190 (such as the Internet). Prior to reaching server 140, the data travels first through firewall 150 and proxy 160.
Data communication protocols allow client 130 and server 140 to communicate with each other over communications network 190. For example, the well known Internet Protocol (IP), as described in Request for Comment (RFC) 791 (INTERNET PROTOCOL, DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION, dated September 1981), and the well known Transmission Control Protocol (TCP) as described in RFC 793 (TRANSMISSION CONTROL PROTOCOL, DARPA INTERNET PROGRAM PROTOCOL, SPECIFICATION, dated September 1981) (together known as TCP/IP) can provide the necessary mechanisms that allow communications to pass between computers and other data processing devices using the Internet. Similarly, the well known Hypertext Transfer Protocol (HTTP), as described in RFC 2616 (HYPERTEXT TRANSFER PROTOCOL—HTTP/1.1), can provide the ability for communications to occur between clients and servers using the World Wide Web (WWW or Web).
Certain processes that may occur at an agent of an entity communicating over a communications network can take a significant amount of time to complete. For example, activities related to checking for viruses (such as scanning a file requested by a client) can take a significant amount of time while executing at a firewall. While such activity takes place, the client machine may not sense any network activity and may incorrectly determine that the communications session has been terminated. For example, a lack of activity could be incorrectly perceived as a situation where the server has crashed or is otherwise not responding.
Mechanisms have existed in the past for preserving network connections during periods of inactivity between the server and the client. For example, International Patent Application WO 99/26161 entitled “Controlled Distribution of Application Programs in a Computer Network”, assigned to Trend Micro, Inc., discloses a method for establishing a bidirectional communications link between a proxy and a client. The bidirectional link can then be used to provide a status to the client during any time-consuming server operations. However, this solution utilizes a separate software module that is downloaded from the server to the client. In a non-secure environment, this type of approach could introduce viruses or other malicious processes. In addition, this type of approach would consume resources on the client machine. Furthermore, in some network configurations (for example, those involving firewalls), a separate software module might be blocked from being received by the client.
Consequently, a need exists for a data network system that overcomes the foregoing drawbacks. In particular, a method is needed for maintaining a communications protocol session between a client and a server during periods when time consuming processes are executed at agents of the client, without the dangers and disadvantages associated with downloading a separate piece of software.